import axios from 'axios'
import router from '@/router'

const service = axios.create({
  // process.env.NODE_ENV === 'development' 来判断是否开发环境
  baseURL: 'https://prapi-oltp.pernod-ricard-china.com/newland',
  // baseURL: '/newland',
  timeout: 180000,
  headers: { 'Content-Type': 'application/json' }

})
/**
 * 请求拦截
 */
service.interceptors.request.use(
  config => {
    if (localStorage.storetoken) {
      config.headers.Authorization = localStorage.storetokenHead + localStorage.storetoken // 请求头带上token
    }

    return config
  },
  error => {
    console.log(error)
    return Promise.reject()
  }
)
/**
 * 响应拦截
 */
service.interceptors.response.use(
  response => {
    const res = response.data;
    if (res.code === 200) { // 0：表示成功
      return res.data
    } else if (res.code === 10) { // 10：表示未登录
      // 在.js文件中，只能使用window.location.href跳转，才有效
      // 路由跳转只能在.vue页面中使用，因为路由跳转需要获取Vue实例，而.js中获取不到Vue实例
      window.location.href = '/#/login'
      return Promise.reject(res)
    } else {
      // Message.warning(res.msg)
      // Promise.reject()：抛出异常，不会进入成功的this.$http.get().then()中，而是只进入catch()中
      return Promise.reject(res)
    }
  }, (error) => {
    const res = error.response
    // Message.error(res.data.message)
    return Promise.reject(error)
  },
  (error) => {
    return Promise.reject()
  }
)

/**
 * exportFile导出文件
 * @param {*} url 请求地址
 * @param {*} params 请求参数
 */
service.exportFile = (url, params) => {
  var form = document.createElement('form')
  form.id = 'form'
  form.name = 'form'
  document.body.appendChild(form)
  for (var obj in params) {
    if (params.hasOwnProperty(obj)) {
      // console.log(params[obj])
      var input = document.createElement('input')
      input.type = 'hidden'
      input.name = obj
      input.value = params[obj]
      form.appendChild(input)
    }
  }
  form.method = 'POST' // 请求方式
  form.action = http.adornUrl(url)
  form.submit()
  document.body.removeChild(form)
}

export default service
